約 6,812,922 件
https://w.atwiki.jp/sicpstudygroup/pages/33.html
Exercise1.20 ;; 正規順序 正規順序による (gcd 206 40) の評価は次のように進行する。 if (= 40 0) = #f else (gcd 40 (remainder 206 40)) if (= (remainder 206 40) 0) = #f else (gcd (remainder 206 40) (remainder 40 (remainder 206 40))) if (= (remainder 40 (remainder 206 40)) 0) = #f else (gcd (remainder 40 (remainder 206 40)) (remainder (remainder 206 40) (remainder 40 (remainder 206 40)))) if (= (remainder (remainder 206 40) (remainder 40 (remainder 206 40))) 0) = #f else (gcd (remainder (remainder 206 40) (remainder 40 (remainder 206 40))) (remainder (remainder 40 (remainder 206 40)) (remainder (remainder 206 40) (remainder 40 (remainder 206 40))))) if (= (remainder (remainder 40 (remainder 206 40)) (remainder (remainder 206 40) (remainder 40 (remainder 206 40)))) 0) = #t then (remainder (remainder 206 40) (remainder 40 (remainder 206 40))) = 2 となる。結局 remainder 演算が実行されるのは、if文の中で14回、最後に簡 約されるとき4回であり、計18回実行される。 ;; 作用的順序 (gcd 206 40) 作用的順序による評価は次のように進行する。 (gcd 40 6) ;6 (remainder 206 40) (gcd 6 4) ;4 (remainder 40 6) (gcd 4 2) ;2 (remainder 6 4) (gcd 2 0) ;0 (remainder 4 2) 2 引数が評価されてから作用させるので、remainder は 4回実行される。 by kacchi (Alyssaさんの指摘を受けて修正) Exercise1.21 199, 1999, 19999 の最小除数 (smallest-divisor 199) ;Value 199 (smallest-divisor 1999) ;Value 1999 (smallest-divisor 19999) ;Value 7 by kacchi Exercise1.22 runtime 関数がある MIT Scheme を利用しました(他の処理系にはない?)。 指定範囲の連続する奇整数について素数性を調べる手続き search-for-prime を書け ;; 素数でない整数は出力しないようにした。 (define (search-for-prime start limit) (if (prime? start) (times-prime-test start)) (if ( = (+ start 2) limit) (search-for-prime (+ start 2) limit))) ;; 速すぎて計測できないので大きな数で試した。 (search-for-prime 1000001 1000100) 1000003 *** 1.0000000000000009e-2 1000033 *** 1.0000000000000009e-2 1000037 *** 1.0000000000000009e-2 (search-for-prime 10000001 10000200) 10000019 *** .01999999999999602 10000079 *** .03999999999999915 10000103 *** 2.0000000000003126e-2 (search-for-prime 100000001 100000100) 100000007 *** .11999999999999744 100000037 *** 6.0000000000002274e-2 100000039 *** 6.0000000000002274e-2 ひと桁増えると計算時間がほぼ√10倍になると思うので、 ・支持する。 ・合っている。 by kacchi Exercise1.23 (define (next n) (if (= n 2) 3 (+ n 2))) (define (find-divisor n test-divisor) (cond (( (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor n (next test-divisor))))) (times-prime-test 1000003) 1000003 *** .00999999999999801 (times-prime-test 10000019) 10000019 *** 3.0000000000001137e-2 (times-prime-test 100000007) 100000007 *** .10999999999999943 速度に変化はないと思う。しかし理由が解らない。 by kacchi Exercise1.24 解答募集中 Exercise1.25 理論上は正しい。しかし,高速素数テストには使えない。 Hackerのプログラムでは(fast-exp base exp)を計算する。 expが大きな数になると,この計算に時間が掛かりすぎる。 たとえば1001の素数判定を行うとしてaに2を選ぶと, (fast-exp 2 1001),すなわち2の1001乗を先に計算する ことになる。 by chrono Exercise1.26 Reasonerのプログラムでのexpmod関数の呼び出し回数は,次のように求まる。 nを二進数で表現し,「各ビットに対してビット0なら1,ビット1なら2に そのビットが表す10進数を掛けた値」の和となる。 ただし,最上位ビットは1にビットが表す10進数を掛ける。 たとえば,nが10の時, 10 = (1010)_2 より 8*1 + 4*1 + 2*2 + 1*1 = 17回となる。 expmod関数の呼び出し関係と照らし合わせると次となることより分かる。 (詳細は割愛します…) 1 0 1 0 expmod(base 1 m)-+ expmod(base 1 m)--expmod(base 2 m)+ | expmod(base 1 m)-+ | expmod(base 1 m)--expmod(base 2 m)--expmod(base 4 m)--expmod(base 5 m)+ | expmod(base 1 m)-+ | expmod(base 1 m)--expmod(base 2 m)+ | | | expmod(base 1 m)-+ | | expmod(base 1 m)--expmod(base 2 m)--expmod(base 4 m)--expmod(base 5 m)--expmod(base 10 m) ここで,2のべき乗のうちn以下の最大の数を2^kとすると,expmod関数の 呼び出し回数の関係は,明らかに 2^k = n 2^(k+1) となる (ここも割愛します…)。 2^kの呼び出し回数は上述より2^(k+1) - 1となり,2^(k+1)の呼び出し回数は 上述より2^(k+2) - 1となる。 よって,Reasonerのプログラムはθ(n)である。 by chrono Exercise1.27 問題文 脚注47におけるCarmichael数を実際にfool the Fermat testを行って証明せよ。つまり、整数nを引数に取り∀a n(a^n≡a (mod n))を満たすかテストする手続きを作れ、そしてそれで与えられたCarmichael数をテストしてみよ。 (define (fool-the-fermat-test n) (define (iter-fermat a) (cond (( a 0) #f) ((= a 0) #t) ((= (expmod a n n) a) (iter-fermat (- a 1))) (else #f))) (iter-fermat (- n 1))) gosh (fool-the-fermat-test 561) #t gosh (fool-the-fermat-test 1105) #t gosh (fool-the-fermat-test 1729) #t gosh (fool-the-fermat-test 2465) #t gosh (fool-the-fermat-test 2821) #t gosh (fool-the-fermat-test 6601) #t by iwk Exercise1.28 解答募集中 Exercise1.29 ;; 合成シンプソン公式を参考にした。 http //ja.wikipedia.org/wiki/%E3%82%B7%E3%83%B3%E3%83%97%E3%82%BD%E3%83%B3%E3%81%AE%E5%85%AC%E5%BC%8F (define (cube x) (* x x x)) (define (integral f a b n) (define h (/ (- b a) n)) (define (y k) (f (+ a (* k h)))) (define (next n) (+ n 2)) (/ (* h (+ (y 0) (* (sum y 1 next (- n 1)) 4) (* (sum y 2 next (- n 2)) 2) (y n))) 3)) (integral cube 0 1 100) = 1/4 (integral cube 0 1 1000) = 1/4 by kacchi Exercise1.30 (define (sum term a next b) (define (iter a result) (if ( a b) result (iter (next a) (+ (term a) result)))) (iter a 0)) by kacchi Exercise1.31 (a) (1)与えられた範囲の点での関数値の積を返す手続き product を定義せよ。 (2)product を使って factorial を定義せよ。 (3)式 π/4 = (2*4*4*6*6*8..)/(3*3*5*5*7*7...) によってπの近似値を productを使って定義せよ。 (1) (define (product term a next b) (if ( a b) 1 (* (term a) (product term (next a) next b)))) (2) (define (factorial n) (product identity 1 inc n)) (3) ;; John Wallis ;; http //www.pluto.ai.kyutech.ac.jp/plt/matumoto/pi_small/node5.html (define (pi-product a b) (define (pi-term x) (/ (* (* x 2) (+ (* x 2) 2)) (square (+ (* x 2) 1)))) (define (pi-next x) (+ x 1)) (product pi-term a pi-next b)) gosh (* 4 (pi-product 1.0 1000)) = 3.1423773650938855 (b) 反復的プロセスを生成する product を書け。 (define (product term a next b) (define (iter a result) (if ( a b) result (iter (next a) (* (term a) result)))) (iter a 1)) by kacchi Exercise1.32 (a) sum や product 更に一般的な accumulate の特殊な場合であることを示せ。 ;; 再帰的プロセス版 (define (accumulate combiner null-value term a next b) (if ( a b) null-value (combiner (term a) (accumulate combiner null-value term (next a) next b)))) (define (sum term a next b) (accumulate + 0 term a next b)) (define (product term a next b) (accumulate * 1 term a next b)) (b) 反復的プロセスを生成する版 (define (accumulate combiner null-value term a next b) (define (iter a result) (if ( a b) result (iter (next a) (combiner (term a) result)))) (iter a null-value)) by kacchi Exercise1.33 ;; 再帰版 (define (filtered-accumulate predicate combiner null-value term a next b) (cond (( a b) null-value) ((predicate a) (combiner (term a) (filtered-accumulate predicate combiner null-value term (next a) next b))) (else (filtered-accumulate predicate combiner null-value term (next a) next b)))) ;; 反復版 (define (filtered-accumulate predicate combiner null-value term a next b) (define (iter a result) (cond (( a b) result) ((predicate a) (iter (next a) (combiner (term a) result))) (else (iter (next a) result)))) (iter a null-value)) (a) 素数の2乗の和 (define (sum-squared-prime-numbers a b) (filtered-accumulate prime? + 0 square a inc b)) (sum-squared-prime-numbers 2 10) ;Value 87 (b) i n で gcd(i,n) = 1 となる全整数の積 (define (product-gcd n) (define (p i) (= (gcd i n) 1)) (filtered-accumulate p * 1 identity 1 inc n)) (product-gcd 10) ;Value 189 (product-gcd 100) ;Value 426252881942771063138176712755660145456313428952105524817872601 by kacchi Exercise1.34 (define (f g) (g 2)) 解釈系に (f f) を評価させるとどうなるか。 f の本体を取り出し仮引数 g を f で置き換える。 (f 2) f の本体を取り出し仮引数 g を 2 で置き換える。 (2 2) に帰着する。左端の演算子を評価すると値は 2 となる。値は手続きでなければならないが、 数値なのでエラーになる。 MIT scheme での結果。 ;The object 2 is not applicable. Gauche での結果。 *** ERROR invalid application (2 2) by kacchi Exercise1.35 1.2.2節の黄金比は、x^2 = x + 1 を満たす x である。 これを等価な、x = 1 + 1/x と書けば、平方根の計算と同様、x |- 1 + 1/x の不動点を 探すことと同じである。 gosh (fixed-point (lambda (x) (+ 1 (/ 1 x))) 1.0) = 1.6180327868852458 by kacchi Exercise1.36 (1) fixed-point を修正して、生成する近似値を順に印字できるようにせよ。 (define (average x y) (/ (+ x y) 2)) (define tolerance 0.00001) (define (fixed-point f first-guess) (define (close-enough? v1 v2) ( (abs (- v1 v2)) tolerance)) (define (try guess step) (let ((next (f guess))) (print-step next step) (if (close-enough? guess next) next (try next (+ step 1))))) (try first-guess 1)) (define (print-step n step) (display step) (display " ") (display n) (newline)) (2) x^x = 1000 の解を求めよ。 (expt 4 4) 1000 (expt 5 5) なので、4.0 を fixed-point の予測値とした。 gosh (fixed-point (lambda (x) (/ (log 1000) (log x))) 4.0) 1 4.9828921423310435 2 4.301189432497896 (略) 28 4.555530430629037 29 4.555539183677709 = 4.555539183677709 gosh (expt 4.555539183677709 4.555539183677709) = 1000.0087530953886 (3) 平均緩和法を使った場合とステップ数を比較せよ。 gosh (fixed-point (lambda (x) (average (/ (log 1000) (log x)) x)) 4.0) 1 4.491446071165521 2 4.544974650975552 (略) 6 4.5555268862194875 7 4.5555342036887705 = 4.5555342036887705 gosh (expt 4.5555342036887705 4.5555342036887705) = 999.9962217021748 平均緩和法を使った場合、ステップ数は 1/4 になった。 by kacchi Exercise1.37 (a) k項有限連分数を計算する手続きを定義し、kの順次の値で1/φの近似をとり手続きを調べよ。4桁の精度を得るにはkをどのくらいの大きさにしなければならないか。 (1) cont-frac ;; 再帰的プロセス版 (define (cont-frac n d k) (define (rec i) (if (= i k) (/ (n i) (d i)) (/ (n i) (+ (d i) (rec (+ i 1)))))) (rec 1)) (2) kの大きさ 1/φ の計算 gosh (/ 1 (fixed-point (lambda (x) (+ 1 (/ 1 x))) 1.0)) = 0.6180344478216819 手続きを調べるため cont-frac-test を定義し、kの値が1から15まで1/φの近似を調べた。 kの増加に伴って精度が上がることを確認した。4桁の精度を得るには、kの値は11程度でよい。 (define (cont-frac-test a b) (if ( = a b) (let ((r (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) a))) (display a) (display " ") (display r) (newline) (cont-frac-test (+ a 1) b)))) gosh (cont-frac-test 1 15) 1 1.0 2 0.5 3 0.6666666666666666 4 0.6000000000000001 5 0.625 6 0.6153846153846154 7 0.6190476190476191 8 0.6176470588235294 9 0.6181818181818182 10 0.6179775280898876 11 0.6180555555555556 12 0.6180257510729613 13 0.6180371352785146 14 0.6180327868852459 15 0.6180344478216819 (b) cont-frac の反復的プロセス版 (define (cont-frac n d k) (define (iter a i) (if (= i 1) a (iter (/ (n (- i 1)) (+ (d (- i 1)) a)) (- i 1)))) (iter (/ (n k) (d k)) k)) by kacchi Exercise1.38 オイラーの展開による自然対数の底を近似するプログラムを書け。 ;; e-2-cfの計算でkが20程度で15桁の精度が得られたので、 ;; kを20としてeを近似するプログラムを書いた。 (define (e) (define (e-2-cf k) (cont-frac (lambda (i) 1.0) (lambda (i) (if (= (remainder i 3) 2) (* 2.0 (inc (quotient i 3))) 1.0)) k)) (+ (e-2-cf 20) 2)) gosh (e) = 2.718281828459045 by kacchi (iwkさんの指摘を受けて修正) Exercise1.39 正接関数の近似値を計算する手続き(tan-cf x k)を定義せよ。 (define (tan-cf x k) (cont-frac (lambda (i) (if (= i 1) x (- (* x x)))) (lambda (i) (- (* i 2) 1)) k)) by kacchi
https://w.atwiki.jp/feedback1970/pages/57.html
memo source 1 /* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http //www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef APACHE_HTTP_CONFIG_H 18 #define APACHE_HTTP_CONFIG_H 19 20 #include "apr_hooks.h" 21 #include "util_cfgtree.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /** 28 * @file http_config.h 29 * @brief Apache Configuration 30 */ 31 32 /* 33 * The central data structures around here... 34 */ 35 36 /* Command dispatch structures... */ 37 38 /** 39 * How the directives arguments should be parsed. 40 * @remark Note that for all of these except RAW_ARGS, the config routine is 41 * passed a freshly allocated string which can be modified or stored 42 * or whatever... 43 */ 44 enum cmd_how { 45 RAW_ARGS, /** cmd_func parses command line itself */ 46 TAKE1, /** one argument only */ 47 TAKE2, /** two arguments only */ 48 ITERATE, /** one argument, occuring multiple times 49 * (e.g., IndexIgnore) 50 */ 51 ITERATE2, /** two arguments, 2nd occurs multiple times 52 * (e.g., AddIcon) 53 */ 54 FLAG, /** One of On or Off */ 55 NO_ARGS, /** No args at all, e.g. /Directory */ 56 TAKE12, /** one or two arguments */ 57 TAKE3, /** three arguments only */ 58 TAKE23, /** two or three arguments */ 59 TAKE123, /** one, two or three arguments */ 60 TAKE13 /** one or three arguments */ 61 }; 62 /** 63 * This structure is passed to a command which is being invoked, 64 * to carry a large variety of miscellaneous data which is all of 65 * use to *somebody*... 66 */ 67 typedef struct cmd_parms_struct cmd_parms; 68 69 #if defined(AP_HAVE_DESIGNATED_INITIALIZER) || defined(DOXYGEN) 70 71 /** 72 * All the types of functions that can be used in directives 73 * @internal 74 */ 75 typedef union { 76 /** function to call for a no-args */ 77 const char *(*no_args) (cmd_parms *parms, void *mconfig); 78 /** function to call for a raw-args */ 79 const char *(*raw_args) (cmd_parms *parms, void *mconfig, 80 const char *args); 81 /** function to call for a take1 */ 82 const char *(*take1) (cmd_parms *parms, void *mconfig, const char *w); 83 /** function to call for a take2 */ 84 const char *(*take2) (cmd_parms *parms, void *mconfig, const char *w, 85 const char *w2); 86 /** function to call for a take3 */ 87 const char *(*take3) (cmd_parms *parms, void *mconfig, const char *w, 88 const char *w2, const char *w3); 89 /** function to call for a flag */ 90 const char *(*flag) (cmd_parms *parms, void *mconfig, int on); 91 } cmd_func; 92 93 /** This configuration directive does not take any arguments */ 94 # define AP_NO_ARGS func.no_args 95 /** This configuration directive will handle it s own parsing of arguments*/ 96 # define AP_RAW_ARGS func.raw_args 97 /** This configuration directive takes 1 argument*/ 98 # define AP_TAKE1 func.take1 99 /** This configuration directive takes 2 arguments */ 100 # define AP_TAKE2 func.take2 101 /** This configuration directive takes 3 arguments */ 102 # define AP_TAKE3 func.take3 103 /** This configuration directive takes a flag (on/off) as a argument*/ 104 # define AP_FLAG func.flag 105 106 /** method of declaring a directive with no arguments */ 107 # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ 108 { directive, { .no_args=func }, mconfig, where, RAW_ARGS, help } 109 /** method of declaring a directive with raw argument parsing */ 110 # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ 111 { directive, { .raw_args=func }, mconfig, where, RAW_ARGS, help } 112 /** method of declaring a directive which takes 1 argument */ 113 # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ 114 { directive, { .take1=func }, mconfig, where, TAKE1, help } 115 /** method of declaring a directive which takes multiple arguments */ 116 # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ 117 { directive, { .take1=func }, mconfig, where, ITERATE, help } 118 /** method of declaring a directive which takes 2 arguments */ 119 # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ 120 { directive, { .take2=func }, mconfig, where, TAKE2, help } 121 /** method of declaring a directive which takes 1 or 2 arguments */ 122 # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ 123 { directive, { .take2=func }, mconfig, where, TAKE12, help } 124 /** method of declaring a directive which takes multiple 2 arguments */ 125 # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ 126 { directive, { .take2=func }, mconfig, where, ITERATE2, help } 127 /** method of declaring a directive which takes 1 or 3 arguments */ 128 # define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ 129 { directive, { .take3=func }, mconfig, where, TAKE13, help } 130 /** method of declaring a directive which takes 2 or 3 arguments */ 131 # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ 132 { directive, { .take3=func }, mconfig, where, TAKE23, help } 133 /** method of declaring a directive which takes 1 to 3 arguments */ 134 # define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ 135 { directive, { .take3=func }, mconfig, where, TAKE123, help } 136 /** method of declaring a directive which takes 3 arguments */ 137 # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ 138 { directive, { .take3=func }, mconfig, where, TAKE3, help } 139 /** method of declaring a directive which takes a flag (on/off) as a argument*/ 140 # define AP_INIT_FLAG(directive, func, mconfig, where, help) \ 141 { directive, { .flag=func }, mconfig, where, FLAG, help } 142 143 #else /* AP_HAVE_DESIGNATED_INITIALIZER */ 144 145 typedef const char *(*cmd_func) (); 146 147 # define AP_NO_ARGS func 148 # define AP_RAW_ARGS func 149 # define AP_TAKE1 func 150 # define AP_TAKE2 func 151 # define AP_TAKE3 func 152 # define AP_FLAG func 153 154 # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ 155 { directive, func, mconfig, where, RAW_ARGS, help } 156 # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ 157 { directive, func, mconfig, where, RAW_ARGS, help } 158 # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ 159 { directive, func, mconfig, where, TAKE1, help } 160 # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ 161 { directive, func, mconfig, where, ITERATE, help } 162 # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ 163 { directive, func, mconfig, where, TAKE2, help } 164 # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ 165 { directive, func, mconfig, where, TAKE12, help } 166 # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ 167 { directive, func, mconfig, where, ITERATE2, help } 168 # define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ 169 { directive, func, mconfig, where, TAKE13, help } 170 # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ 171 { directive, func, mconfig, where, TAKE23, help } 172 # define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ 173 { directive, func, mconfig, where, TAKE123, help } 174 # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ 175 { directive, func, mconfig, where, TAKE3, help } 176 # define AP_INIT_FLAG(directive, func, mconfig, where, help) \ 177 { directive, func, mconfig, where, FLAG, help } 178 179 #endif /* AP_HAVE_DESIGNATED_INITIALIZER */ 180 181 /** 182 * The command record structure. Each modules can define a table of these 183 * to define the directives it will implement. 184 */ 185 typedef struct command_struct command_rec; 186 struct command_struct { 187 /** Name of this command */ 188 const char *name; 189 /** The function to be called when this directive is parsed */ 190 cmd_func func; 191 /** Extra data, for functions which implement multiple commands... */ 192 void *cmd_data; 193 /** What overrides need to be allowed to enable this command. */ 194 int req_override; 195 /** What the command expects as arguments 196 * @defvar cmd_how args_how*/ 197 enum cmd_how args_how; 198 199 /** usage message, in case of syntax errors */ 200 const char *errmsg; 201 }; 202 203 /** 204 * @defgroup ConfigDirectives Allowed locations for configuration directives. 205 * 206 * The allowed locations for a configuration directive are the union of 207 * those indicated by each set bit in the req_override mask. 208 * 209 * @{ 210 */ 211 #define OR_NONE 0 /** *.conf is not available anywhere in this override */ 212 #define OR_LIMIT 1 /** *.conf inside Directory or Location 213 and .htaccess when AllowOverride Limit */ 214 #define OR_OPTIONS 2 /** *.conf anywhere 215 and .htaccess when AllowOverride Options */ 216 #define OR_FILEINFO 4 /** *.conf anywhere 217 and .htaccess when AllowOverride FileInfo */ 218 #define OR_AUTHCFG 8 /** *.conf inside Directory or Location 219 and .htaccess when AllowOverride AuthConfig */ 220 #define OR_INDEXES 16 /** *.conf anywhere 221 and .htaccess when AllowOverride Indexes */ 222 #define OR_UNSET 32 /** unset a directive (in Allow) */ 223 #define ACCESS_CONF 64 /** *.conf inside Directory or Location */ 224 #define RSRC_CONF 128 /** *.conf outside Directory or Location */ 225 #define EXEC_ON_READ 256 /** force directive to execute a command 226 which would modify the configuration (like including another 227 file, or IFModule */ 228 /** this directive can be placed anywhere */ 229 #define OR_ALL (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES) 230 231 /** @} */ 232 233 /** 234 * This can be returned by a function if they don t wish to handle 235 * a command. Make it something not likely someone will actually use 236 * as an error code. 237 */ 238 #define DECLINE_CMD "\a\b" 239 240 /** Common structure for reading of config files / passwd files etc. */ 241 typedef struct ap_configfile_t ap_configfile_t; 242 struct ap_configfile_t { 243 int (*getch) (void *param); /** a getc()-like function */ 244 void *(*getstr) (void *buf, size_t bufsiz, void *param); 245 /** a fgets()-like function */ 246 int (*close) (void *param); /** a close handler function */ 247 void *param; /** the argument passed to getch/getstr/close */ 248 const char *name; /** the filename / description */ 249 unsigned line_number; /** current line number, starting at 1 */ 250 }; 251 252 /** 253 * This structure is passed to a command which is being invoked, 254 * to carry a large variety of miscellaneous data which is all of 255 * use to *somebody*... 256 */ 257 struct cmd_parms_struct { 258 /** Argument to command from cmd_table */ 259 void *info; 260 /** Which allow-override bits are set */ 261 int override; 262 /** Which methods are Limit ed */ 263 apr_int64_t limited; 264 /** methods which are limited */ 265 apr_array_header_t *limited_xmethods; 266 /** methods which are xlimited */ 267 ap_method_list_t *xlimited; 268 269 /** Config file structure. */ 270 ap_configfile_t *config_file; 271 /** the directive specifying this command */ 272 ap_directive_t *directive; 273 274 /** Pool to allocate new storage in */ 275 apr_pool_t *pool; 276 /** Pool for scratch memory; persists during configuration, but 277 * wiped before the first request is served... */ 278 apr_pool_t *temp_pool; 279 /** Server_rec being configured for */ 280 server_rec *server; 281 /** If configuring for a directory, pathname of that directory. 282 * NOPE! That s what it meant previous to the existance of Files , 283 * Location and regex matching. Now the only usefulness that can be 284 * derived from this field is whether a command is being called in a 285 * server context (path == NULL) or being called in a dir context 286 * (path != NULL). */ 287 char *path; 288 /** configuration command */ 289 const command_rec *cmd; 290 291 /** per_dir_config vector passed to handle_command */ 292 struct ap_conf_vector_t *context; 293 /** directive with syntax error */ 294 const ap_directive_t *err_directive; 295 }; 296 297 /** 298 * Module structures. Just about everything is dispatched through 299 * these, directly or indirectly (through the command and handler 300 * tables). 301 */ 302 typedef struct module_struct module; 303 struct module_struct { 304 /** API version, *not* module version; check that module is 305 * compatible with this version of the server. 306 */ 307 int version; 308 /** API minor version. Provides API feature milestones. Not checked 309 * during module init */ 310 int minor_version; 311 /** Index to this modules structures in config vectors. */ 312 int module_index; 313 314 /** The name of the module s C file */ 315 const char *name; 316 /** The handle for the DSO. Internal use only */ 317 void *dynamic_load_handle; 318 319 /** A pointer to the next module in the list 320 * @defvar module_struct *next */ 321 struct module_struct *next; 322 323 /** Magic Cookie to identify a module structure; It s mainly 324 * important for the DSO facility (see also mod_so). */ 325 unsigned long magic; 326 327 /** Function to allow MPMs to re-write command line arguments. This 328 * hook is only available to MPMs. 329 * @param The process that the server is running in. 330 */ 331 void (*rewrite_args) (process_rec *process); 332 /** Function to allow all modules to create per directory configuration 333 * structures. 334 * @param p The pool to use for all allocations. 335 * @param dir The directory currently being processed. 336 * @return The per-directory structure created 337 */ 338 void *(*create_dir_config) (apr_pool_t *p, char *dir); 339 /** Function to allow all modules to merge the per directory configuration 340 * structures for two directories. 341 * @param p The pool to use for all allocations. 342 * @param base_conf The directory structure created for the parent directory. 343 * @param new_conf The directory structure currently being processed. 344 * @return The new per-directory structure created 345 */ 346 void *(*merge_dir_config) (apr_pool_t *p, void *base_conf, void *new_conf); 347 /** Function to allow all modules to create per server configuration 348 * structures. 349 * @param p The pool to use for all allocations. 350 * @param s The server currently being processed. 351 * @return The per-server structure created 352 */ 353 void *(*create_server_config) (apr_pool_t *p, server_rec *s); 354 /** Function to allow all modules to merge the per server configuration 355 * structures for two servers. 356 * @param p The pool to use for all allocations. 357 * @param base_conf The directory structure created for the parent directory. 358 * @param new_conf The directory structure currently being processed. 359 * @return The new per-directory structure created 360 */ 361 void *(*merge_server_config) (apr_pool_t *p, void *base_conf, 362 void *new_conf); 363 364 /** A command_rec table that describes all of the directives this module 365 * defines. */ 366 const command_rec *cmds; 367 368 /** A hook to allow modules to hook other points in the request processing. 369 * In this function, modules should call the ap_hook_*() functions to 370 * register an interest in a specific step in processing the current 371 * request. 372 * @param p the pool to use for all allocations 373 */ 374 void (*register_hooks) (apr_pool_t *p); 375 }; 376 377 /** 378 * @defgroup ModuleInit Module structure initializers 379 * 380 * Initializer for the first few module slots, which are only 381 * really set up once we start running. Note that the first two slots 382 * provide a version check; this should allow us to deal with changes to 383 * the API. The major number should reflect changes to the API handler table 384 * itself or removal of functionality. The minor number should reflect 385 * additions of functionality to the existing API. (the server can detect 386 * an old-format module, and either handle it back-compatibly, or at least 387 * signal an error). See src/include/ap_mmn.h for MMN version history. 388 * @{ 389 */ 390 391 /** The one used in Apache 1.3, which will deliberately cause an error */ 392 #define STANDARD_MODULE_STUFF this_module_needs_to_be_ported_to_apache_2_0 393 394 /** Use this in all standard modules */ 395 #define STANDARD20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ 396 MODULE_MAGIC_NUMBER_MINOR, \ 397 -1, \ 398 __FILE__, \ 399 NULL, \ 400 NULL, \ 401 MODULE_MAGIC_COOKIE, \ 402 NULL /* rewrite args spot */ 403 404 /** Use this only in MPMs */ 405 #define MPM20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ 406 MODULE_MAGIC_NUMBER_MINOR, \ 407 -1, \ 408 __FILE__, \ 409 NULL, \ 410 NULL, \ 411 MODULE_MAGIC_COOKIE 412 413 /** @} */ 414 415 /* CONFIGURATION VECTOR FUNCTIONS */ 416 417 /** configuration vector structure */ 418 typedef struct ap_conf_vector_t ap_conf_vector_t; 419 420 /** 421 * Generic accessors for other modules to get at their own module-specific 422 * data 423 * @param conf_vector The vector in which the modules configuration is stored. 424 * usually r- per_dir_config or s- module_config 425 * @param m The module to get the data for. 426 * @return The module-specific data 427 */ 428 AP_DECLARE(void *) ap_get_module_config(const ap_conf_vector_t *cv, 429 const module *m); 430 431 /** 432 * Generic accessors for other modules to set at their own module-specific 433 * data 434 * @param conf_vector The vector in which the modules configuration is stored. 435 * usually r- per_dir_config or s- module_config 436 * @param m The module to set the data for. 437 * @param val The module-specific data to set 438 */ 439 AP_DECLARE(void) ap_set_module_config(ap_conf_vector_t *cv, const module *m, 440 void *val); 441 442 #if !defined(AP_DEBUG) 443 444 #define ap_get_module_config(v,m) \ 445 (((void **)(v))[(m)- module_index]) 446 #define ap_set_module_config(v,m,val) \ 447 ((((void **)(v))[(m)- module_index]) = (val)) 448 449 #endif /* AP_DEBUG */ 450 451 452 /** 453 * Generic command handling function for strings 454 * @param cmd The command parameters for this directive 455 * @param struct_ptr pointer into a given type 456 * @param arg The argument to the directive 457 * @return An error string or NULL on success 458 */ 459 AP_DECLARE_NONSTD(const char *) ap_set_string_slot(cmd_parms *cmd, 460 void *struct_ptr, 461 const char *arg); 462 463 /** 464 * Generic command handling function for integers 465 * @param cmd The command parameters for this directive 466 * @param struct_ptr pointer into a given type 467 * @param arg The argument to the directive 468 * @return An error string or NULL on success 469 */ 470 AP_DECLARE_NONSTD(const char *) ap_set_int_slot(cmd_parms *cmd, 471 void *struct_ptr, 472 const char *arg); 473 474 /** 475 * Return true if the specified method is limited by being listed in 476 * a Limit container, or by *not* being listed in a LimiteExcept 477 * container. 478 * 479 * @param method Pointer to a string specifying the method to check. 480 * @param cmd Pointer to the cmd_parms structure passed to the 481 * directive handler. 482 * @return 0 if the method is not limited in the current scope 483 */ 484 AP_DECLARE(int) ap_method_is_limited(cmd_parms *cmd, const char *method); 485 486 /** 487 * Generic command handling function for strings, always sets the value 488 * to a lowercase string 489 * @param cmd The command parameters for this directive 490 * @param struct_ptr pointer into a given type 491 * @param arg The argument to the directive 492 * @return An error string or NULL on success 493 */ 494 AP_DECLARE_NONSTD(const char *) ap_set_string_slot_lower(cmd_parms *cmd, 495 void *struct_ptr, 496 const char *arg); 497 /** 498 * Generic command handling function for flags 499 * @param cmd The command parameters for this directive 500 * @param struct_ptr pointer into a given type 501 * @param arg The argument to the directive (either 1 or 0) 502 * @return An error string or NULL on success 503 */ 504 AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd, 505 void *struct_ptr, 506 int arg); 507 /** 508 * Generic command handling function for files 509 * @param cmd The command parameters for this directive 510 * @param struct_ptr pointer into a given type 511 * @param arg The argument to the directive 512 * @return An error string or NULL on success 513 */ 514 AP_DECLARE_NONSTD(const char *) ap_set_file_slot(cmd_parms *cmd, 515 void *struct_ptr, 516 const char *arg); 517 /** 518 * Generic command handling function to respond with cmd- help as an error 519 * @param cmd The command parameters for this directive 520 * @param struct_ptr pointer into a given type 521 * @param arg The argument to the directive 522 * @return The cmd- help value as the error string 523 * @tip This allows simple declarations such as; 524 * pre 525 * AP_INIT_RAW_ARGS("Foo", ap_set_deprecated, NULL, OR_ALL, 526 * "The Foo directive is no longer supported, use Bar"), 527 * /pre 528 */ 529 AP_DECLARE_NONSTD(const char *) ap_set_deprecated(cmd_parms *cmd, 530 void *struct_ptr, 531 const char *arg); 532 /** 533 * For modules which need to read config files, open logs, etc. this returns 534 * the canonical form of fname made absolute to ap_server_root. 535 * @param p pool to allocate data from 536 * @param fname The file name 537 */ 538 AP_DECLARE(char *) ap_server_root_relative(apr_pool_t *p, const char *fname); 539 540 /* Finally, the hook for dynamically loading modules in... */ 541 542 /** 543 * Add a module to the server 544 * @param m The module structure of the module to add 545 * @param p The pool of the same lifetime as the module 546 */ 547 AP_DECLARE(void) ap_add_module(module *m, apr_pool_t *p); 548 549 /** 550 * Remove a module from the server. There are some caveats 551 * when the module is removed, its slot is lost so all the current 552 * per-dir and per-server configurations are invalid. So we should 553 * only ever call this function when you are invalidating almost 554 * all our current data. I.e. when doing a restart. 555 * @param m the module structure of the module to remove 556 */ 557 AP_DECLARE(void) ap_remove_module(module *m); 558 /** 559 * Add a module to the chained modules list and the list of loaded modules 560 * @param m The module structure of the module to add 561 * @param p The pool with the same lifetime as the module 562 */ 563 AP_DECLARE(void) ap_add_loaded_module(module *mod, apr_pool_t *p); 564 /** 565 * Remove a module fromthe chained modules list and the list of loaded modules 566 * @param m the module structure of the module to remove 567 */ 568 AP_DECLARE(void) ap_remove_loaded_module(module *mod); 569 /** 570 * Add a module to the list of loaded module based on the name of the 571 * module 572 * @param name The name of the module 573 * @param p The pool valid for the lifetime of the module 574 * @return 1 on success, 0 on failure 575 */ 576 AP_DECLARE(int) ap_add_named_module(const char *name, apr_pool_t *p); 577 /** 578 * Find the name of the specified module 579 * @param m The module to get the name for 580 * @return the name of the module 581 */ 582 AP_DECLARE(const char *) ap_find_module_name(module *m); 583 /** 584 * Find a module based on the name of the module 585 * @param name the name of the module 586 * @return the module structure if found, NULL otherwise 587 */ 588 AP_DECLARE(module *) ap_find_linked_module(const char *name); 589 590 /** 591 * Open a ap_configfile_t as apr_file_t 592 * @param ret_cfg open ap_configfile_t struct pointer 593 * @param p The pool to allocate the structure from 594 * @param name the name of the file to open 595 */ 596 AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg, 597 apr_pool_t *p, const char *name); 598 599 /** 600 * Allocate a ap_configfile_t handle with user defined functions and params 601 * @param p The pool to allocate from 602 * @param descr The name of the file 603 * @param param The argument passed to getch/getstr/close 604 * @param getc_func The getch function 605 * @param gets_func The getstr function 606 * @param close_func The close function 607 */ 608 AP_DECLARE(ap_configfile_t *) ap_pcfg_open_custom(apr_pool_t *p, 609 const char *descr, 610 void *param, 611 int(*getc_func)(void*), 612 void *(*gets_func) (void *buf, size_t bufsiz, void *param), 613 int(*close_func)(void *param)); 614 615 /** 616 * Read one line from open ap_configfile_t, strip LF, increase line number 617 * @param buf place to store the line read 618 * @param bufsize size of the buffer 619 * @param cfp File to read from 620 * @return 1 on success, 0 on failure 621 */ 622 AP_DECLARE(int) ap_cfg_getline(char *buf, size_t bufsize, ap_configfile_t *cfp); 623 624 /** 625 * Read one char from open configfile_t, increase line number upon LF 626 * @param cfp The file to read from 627 * @return the character read 628 */ 629 AP_DECLARE(int) ap_cfg_getc(ap_configfile_t *cfp); 630 631 /** 632 * Detach from open ap_configfile_t, calling the close handler 633 * @param cfp The file to close 634 * @return 1 on sucess, 0 on failure 635 */ 636 AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp); 637 638 /** 639 * Read all data between the current foo and the matching /foo . All 640 * of this data is forgotten immediately. 641 * @param cmd The cmd_parms to pass to the directives inside the container 642 * @param directive The directive name to read until 643 * @return Error string on failure, NULL on success 644 */ 645 AP_DECLARE(const char *) ap_soak_end_container(cmd_parms *cmd, char *directive); 646 647 /** 648 * Read all data between the current foo and the matching /foo and build 649 * a config tree from it 650 * @param p pool to allocate from 651 * @param temp_pool Temporary pool to allocate from 652 * @param parms The cmd_parms to pass to all directives read 653 * @param current The current node in the tree 654 * @param curr_parent The current parent node 655 * @param orig_directive The directive to read until hit. 656 * @return Error string on failure, NULL on success 657 */ 658 AP_DECLARE(const char *) ap_build_cont_config(apr_pool_t *p, 659 apr_pool_t *temp_pool, 660 cmd_parms *parms, 661 ap_directive_t **current, 662 ap_directive_t **curr_parent, 663 char *orig_directive); 664 665 /** 666 * Build a config tree from a config file 667 * @param parms The cmd_parms to pass to all of the directives in the file 668 * @param conf_pool The pconf pool 669 * @param temp_pool The temporary pool 670 * @param conftree Place to store the root node of the config tree 671 * @return Error string on erro, NULL otherwise 672 */ 673 AP_DECLARE(const char *) ap_build_config(cmd_parms *parms, 674 apr_pool_t *conf_pool, 675 apr_pool_t *temp_pool, 676 ap_directive_t **conftree); 677 678 /** 679 * Walk a config tree and setup the server s internal structures 680 * @param conftree The config tree to walk 681 * @param parms The cmd_parms to pass to all functions 682 * @param section_vector The per-section config vector. 683 * @return Error string on error, NULL otherwise 684 */ 685 AP_DECLARE(const char *) ap_walk_config(ap_directive_t *conftree, 686 cmd_parms *parms, 687 ap_conf_vector_t *section_vector); 688 689 /** 690 * @defgroup ap_check_cmd_context ap_check_cmd_context 691 * @{ 692 */ 693 /** 694 * Check the context a command is used in. 695 * @param cmd The command to check 696 * @param forbidden Where the command is forbidden. 697 * @return Error string on error, NULL on success 698 */ 699 AP_DECLARE(const char *) ap_check_cmd_context(cmd_parms *cmd, 700 unsigned forbidden); 701 702 #define NOT_IN_VIRTUALHOST 0x01 /** Forbidden in Virtualhost */ 703 #define NOT_IN_LIMIT 0x02 /** Forbidden in Limit */ 704 #define NOT_IN_DIRECTORY 0x04 /** Forbidden in Directory */ 705 #define NOT_IN_LOCATION 0x08 /** Forbidden in Location */ 706 #define NOT_IN_FILES 0x10 /** Forbidden in Files */ 707 /** Forbidden in Directory / Location / Files */ 708 #define NOT_IN_DIR_LOC_FILE (NOT_IN_DIRECTORY|NOT_IN_LOCATION|NOT_IN_FILES) 709 /** Forbidden in VirtualHost / Limit / Directory / Location / Files */ 710 #define GLOBAL_ONLY (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE) 711 712 /** @} */ 713 714 #ifdef CORE_PRIVATE 715 716 /** 717 * The topmost module in the list 718 * @defvar module *ap_top_module 719 */ 720 AP_DECLARE_DATA extern module *ap_top_module; 721 722 /** 723 * Array of all statically linked modules 724 * @defvar module *ap_prelinked_modules[] 725 */ 726 AP_DECLARE_DATA extern module *ap_prelinked_modules[]; 727 /** 728 * Array of all preloaded modules 729 * @defvar module *ap_preloaded_modules[] 730 */ 731 AP_DECLARE_DATA extern module *ap_preloaded_modules[]; 732 /** 733 * Array of all loaded modules 734 * @defvar module **ap_loaded_modules 735 */ 736 AP_DECLARE_DATA extern module **ap_loaded_modules; 737 738 /* For mod_so.c... */ 739 /** Run a single module s two create_config hooks 740 * @param p the pool to allocate from 741 * @param s The server to configure for. 742 * @param m The module to configure 743 */ 744 AP_DECLARE(void) ap_single_module_configure(apr_pool_t *p, server_rec *s, 745 module *m); 746 747 /* For http_main.c... */ 748 /** 749 * Add all of the prelinked modules into the loaded module list 750 * @param process The process that is currently running the server 751 */ 752 AP_DECLARE(void) ap_setup_prelinked_modules(process_rec *process); 753 754 /** 755 * Show the preloaded configuration directives, the help string explaining 756 * the directive arguments, in what module they are handled, and in 757 * what parts of the configuration they are allowed. Used for httpd -h. 758 */ 759 AP_DECLARE(void) ap_show_directives(void); 760 761 /** 762 * Show the preloaded module names. Used for httpd -l. 763 */ 764 AP_DECLARE(void) ap_show_modules(void); 765 766 /** 767 * Show the MPM name. Used in reporting modules such as mod_info to 768 * provide extra information to the user 769 */ 770 AP_DECLARE(const char *) ap_show_mpm(void); 771 772 /** 773 * Read all config files and setup the server 774 * @param process The process running the server 775 * @param temp_pool A pool to allocate temporary data from. 776 * @param config_name The name of the config file 777 * @param conftree Place to store the root of the config tree 778 * @return The setup server_rec list. 779 */ 780 AP_DECLARE(server_rec *) ap_read_config(process_rec *process, 781 apr_pool_t *temp_pool, 782 const char *config_name, 783 ap_directive_t **conftree); 784 785 /** 786 * Run all rewrite args hooks for loaded modules 787 * @param process The process currently running the server 788 */ 789 AP_DECLARE(void) ap_run_rewrite_args(process_rec *process); 790 791 /** 792 * Run the register hooks function for a specified module 793 * @param m The module to run the register hooks function fo 794 * @param p The pool valid for the lifetime of the module 795 */ 796 AP_DECLARE(void) ap_register_hooks(module *m, apr_pool_t *p); 797 798 /** 799 * Setup all virtual hosts 800 * @param p The pool to allocate from 801 * @param main_server The head of the server_rec list 802 */ 803 AP_DECLARE(void) ap_fixup_virtual_hosts(apr_pool_t *p, 804 server_rec *main_server); 805 806 /* For http_request.c... */ 807 808 /** 809 * Setup the config vector for a request_rec 810 * @param p The pool to allocate the config vector from 811 * @return The config vector 812 */ 813 AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_request_config(apr_pool_t *p); 814 815 /** 816 * Setup the config vector for per dir module configs 817 * @param p The pool to allocate the config vector from 818 * @return The config vector 819 */ 820 AP_CORE_DECLARE(ap_conf_vector_t *) ap_create_per_dir_config(apr_pool_t *p); 821 822 /** 823 * Run all of the modules merge per dir config functions 824 * @param p The pool to pass to the merge functions 825 * @param base The base directory config structure 826 * @param new_conf The new directory config structure 827 */ 828 AP_CORE_DECLARE(ap_conf_vector_t*) ap_merge_per_dir_configs(apr_pool_t *p, 829 ap_conf_vector_t *base, 830 ap_conf_vector_t *new_conf); 831 832 /* For http_connection.c... */ 833 /** 834 * Setup the config vector for a connection_rec 835 * @param p The pool to allocate the config vector from 836 * @return The config vector 837 */ 838 AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_conn_config(apr_pool_t *p); 839 840 /* For http_core.c... ( Directory command and virtual hosts) */ 841 842 /** 843 * parse an htaccess file 844 * @param resulting htaccess_result 845 * @param r The request currently being served 846 * @param override Which overrides are active 847 * @param path The path to the htaccess file 848 * @param access_name The list of possible names for .htaccess files 849 * int The status of the current request 850 */ 851 AP_CORE_DECLARE(int) ap_parse_htaccess(ap_conf_vector_t **result, 852 request_rec *r, int override, 853 const char *path, 854 const char *access_name); 855 856 /** 857 * Setup a virtual host 858 * @param p The pool to allocate all memory from 859 * @param hostname The hostname of the virtual hsot 860 * @param main_server The main server for this Apache configuration 861 * @param ps Place to store the new server_rec 862 * return Error string on error, NULL on success 863 */ 864 AP_CORE_DECLARE(const char *) ap_init_virtual_host(apr_pool_t *p, 865 const char *hostname, 866 server_rec *main_server, 867 server_rec **); 868 869 /** 870 * Process the config file for Apache 871 * @param s The server rec to use for the command parms 872 * @param fname The name of the config file 873 * @param conftree The root node of the created config tree 874 * @param p Pool for general allocation 875 * @param ptem Pool for temporary allocation 876 */ 877 AP_DECLARE(void) ap_process_resource_config(server_rec *s, const char *fname, 878 ap_directive_t **conftree, 879 apr_pool_t *p, apr_pool_t *ptemp); 880 881 /** 882 * Process all directives in the config tree 883 * @param s The server rec to use in the command parms 884 * @param conftree The config tree to process 885 * @param p The pool for general allocation 886 * @param ptemp The pool for temporary allocations 887 */ 888 AP_DECLARE(void) ap_process_config_tree(server_rec *s, ap_directive_t *conftree, 889 apr_pool_t *p, apr_pool_t *ptemp); 890 891 /* Module-method dispatchers, also for http_request.c */ 892 /** 893 * Run the handler phase of each module until a module accepts the 894 * responsibility of serving the request 895 * @param r The current request 896 * @return The status of the current request 897 */ 898 AP_CORE_DECLARE(int) ap_invoke_handler(request_rec *r); 899 900 /* for mod_perl */ 901 902 /** 903 * Find a given directive in a command_rec table 904 * @param name The directive to search for 905 * @param cmds The table to search 906 * @return The directive definition of the specified directive 907 */ 908 AP_CORE_DECLARE(const command_rec *) ap_find_command(const char *name, 909 const command_rec *cmds); 910 911 /** 912 * Find a given directive in a list module 913 * @param cmd_name The directive to search for 914 * @param mod The module list to search 915 * @return The directive definition of the specified directive 916 */ 917 AP_CORE_DECLARE(const command_rec *) ap_find_command_in_modules(const char *cmd_name, 918 module **mod); 919 920 /** 921 * Ask a module to create per-server and per-section (dir/loc/file) configs 922 * (if it hasn t happened already). The results are stored in the server s 923 * config, and the specified per-section config vector. 924 * @param server The server to operate upon. 925 * @param section_vector The per-section config vector. 926 * @param section Which section to create a config for. 927 * @param mod The module which is defining the config data. 928 * @param pconf A pool for all configuration allocations. 929 * @return The (new) per-section config data. 930 */ 931 AP_CORE_DECLARE(void *) ap_set_config_vectors(server_rec *server, 932 ap_conf_vector_t *section_vector, 933 const char *section, 934 module *mod, apr_pool_t *pconf); 935 936 #endif 937 938 /* Hooks */ 939 940 /** 941 * Run the header parser functions for each module 942 * @param r The current request 943 * @return OK or DECLINED 944 */ 945 AP_DECLARE_HOOK(int,header_parser,(request_rec *r)) 946 947 /** 948 * Run the pre_config function for each module 949 * @param pconf The config pool 950 * @param plog The logging streams pool 951 * @param ptemp The temporary pool 952 * @return OK or DECLINED on success anything else is a error 953 */ 954 AP_DECLARE_HOOK(int,pre_config,(apr_pool_t *pconf,apr_pool_t *plog, 955 apr_pool_t *ptemp)) 956 957 958 /** 959 * Run the post_config function for each module 960 * @param pconf The config pool 961 * @param plog The logging streams pool 962 * @param ptemp The temporary pool 963 * @param s The list of server_recs 964 * @return OK or DECLINED on success anything else is a error 965 */ 966 AP_DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog, 967 apr_pool_t *ptemp,server_rec *s)) 968 969 /** 970 * Run the open_logs functions for each module 971 * @param pconf The config pool 972 * @param plog The logging streams pool 973 * @param ptemp The temporary pool 974 * @param s The list of server_recs 975 * @return OK or DECLINED on success anything else is a error 976 */ 977 AP_DECLARE_HOOK(int,open_logs,(apr_pool_t *pconf,apr_pool_t *plog, 978 apr_pool_t *ptemp,server_rec *s)) 979 980 /** 981 * Run the child_init functions for each module 982 * @param pchild The child pool 983 * @param s The list of server_recs in this server 984 */ 985 AP_DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s)) 986 987 /** 988 * Run the handler functions for each module 989 * @param r The request_rec 990 * @remark non-wildcard handlers should HOOK_MIDDLE, wildcard HOOK_LAST 991 */ 992 AP_DECLARE_HOOK(int,handler,(request_rec *r)) 993 994 /** 995 * Run the quick handler functions for each module. The quick_handler 996 * is run before any other requests hooks are called (location_walk, 997 * directory_walk, access checking, et. al.). This hook was added 998 * to provide a quick way to serve content from a URI keyed cache. 999 * 1000 * @param r The request_rec 1001 * @param lookup_uri Controls whether the caller actually wants content or not. 1002 * lookup is set when the quick_handler is called out of 1003 * ap_sub_req_lookup_uri() 1004 */ 1005 AP_DECLARE_HOOK(int,quick_handler,(request_rec *r, int lookup_uri)) 1006 1007 /** 1008 * Retrieve the optional functions for each module. 1009 * This is run immediately before the server starts. Optional functions should 1010 * be registered during the hook registration phase. 1011 */ 1012 AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) 1013 1014 #ifdef __cplusplus 1015 } 1016 #endif 1017 1018 #endif /* !APACHE_HTTP_CONFIG_H */
https://w.atwiki.jp/is01rebuild/pages/93.html
デフォルト config からの変更 SDカードが認識している際にサイズの大きな APP をインストールすると、暗号化部分ではねられエラーとなる。 google検索結果 http //odroid.foros-phpbb.com/t534-cannot-install-some-apps-device-mapper-missing-from-kernel fi01さんの2chでの情報 【ROM焼き】au IS01 root4 ~穴は塞がれた。だが~ 334 fi01 ◆w.f0Q9VCUk 2011/02/15(火) 17 36 04 ID +ZuucmDA SDカードがマウント出来るようになってからAngryBirdsが インストール出来なくなっていたが、SDカードへ インストールしようとして失敗していた模様。 カーネルにdevice-mapperとtwofish暗号の追加で解決した。 コンフィグの差分は下記の通り。 CONFIG_MD=y CONFIG_BLK_DEV_DM=y CONFIG_DM_DEBUG=y CONFIG_DM_CRYPT=y CONFIG_DM_SNAPSHOT=y CONFIG_DM_MIRROR=y CONFIG_DM_ZERO=y CONFIG_DM_MULTIPATH=y CONFIG_DM_DELAY=y CONFIG_DM_UEVENT=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_TWOFISH_COMMON=y kernel v2.6.29 デフォルトの場合の対応法(BB9で確認) kernel ディレクトリにて $ make ARCH=arm CROSS_COMPILE=../froyo_orig/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi- menuconfig した場合の設定ツリー。(クロスコンパイラの位置は各自の環境に合わせて下さい。) Device Drivers --- [*] Multiple devices driver support (RAID and LVM) --- --- Multiple devices driver support (RAID and LVM) RAID support * Device mapper support [ ] Device mapper debugging support * Crypt target support Snapshot target Mirror target Zero target Multipath target I/O delaying target (EXPERIMENTAL) [*] DM uevents (EXPERIMENTAL) -*- Cryptographic API --- * Twofish cipher algorithm 以上で変更した結果、.config は次の物が追加で有効になる。 CONFIG_MD=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y CONFIG_DM_UEVENT=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_TWOFISH_COMMON=y 以上で、microSDを認識させている際に、インストール出来なかったアプリがインストール可能になった。 TIPS .configの差分を取る # cp .config config_orig などして、デフォルトを保存しておく。 menuconfig で save したあと、 # diff -ubB config_orig .config | grep -e ^+ 等とすると、追加部分だけ出てくる。 | grep -e ^+ は無くてもよい。(単に追加部分だけ抜き出したかったため) コメント 名前 コメント すべてのコメントを見る (2011/09/25 14 01 公開)
https://w.atwiki.jp/tar0_puzzle/pages/32.html
Chapter 2.1 名前 Exercise 2.1 (define (make-rat n d) (define (cons-rat n d) (let ((g (gcd n d))) (cons (/ n g) (/ d g)))) (if ( (* n d) 0) (cons-rat (- (abs n)) (abs d)) (cons-rat (abs n) (abs d)))) Exercise 2.2 (define (average x y) (/ (+ x y) 2)) (define (make-segment p q) (cons p q)) (define (start-segment seg) (car seg)) (define (end-segment seg) (cdr seg)) (define (make-point x y) (cons x y)) (define (x-point p) (car p)) (define (y-point p) (cdr p)) (define (midpoint-segment s) (let ((p (start-segment s)) (q (end-segment s))) (make-point (average (x-point p) (x-point q)) (average (y-point p) (y-point q))))) Exercise 2.3 Exercise 2.4 ; cons,car,cdrを手続きで表現する (define (cons2 x y) (lambda (m) (m x y))) (define (car2 z) (z (lambda (a d) a))) (define (cdr2 z) (z (lambda (a d) d))) Exercise 2.5 非負整数のペアをで表現する (define (count-factor factor num cnt) (if (= (remainder num factor) 0) (count-factor factor (/ num factor) (+ cnt 1)) cnt)) (define (cons3 a b) (if (and ( a 0) ( b 0)) (* (expt 2 a) (expt 3 b)) 0)) (define (car3 z) (count-factor 2 z 0)) (define (cdr3 z) (count-factor 3 z 0)) Exercise 2.6 (define zero (lambda (f) (lambda (x) x))) (define (succ n) (lambda (f) (lambda (x) (f ((n f) x))))) ; (succ zero) ; (lambda (f) (lambda (x) (f ((zero f) x)))) ; (lambda (f) (lambda (x) (f ((lambda (x) x) x)))) (define one (lambda (f) (lambda (x) (f x)))) ; (succ one) ; (lambda (f) (lambda (x) (f ((one f) x)))) ; (lambda (f) (lambda (x) (f ((lambda (x) (f x)) x)))) (define two (lambda (f) (lambda (x) (f (f x))))) ; PLUS = λm n f x. m f (n f x) (define (plus m n) (lambda (f) (lambda (x) ((m f) ((n f) x))))) ; ついで, Church数から普通の整数に変換 (define (church-to-number n) (define (inc x) (+ x 1)) ((n inc) 0)) Church numeral ラムダ計算 0 = λfx.x == λf.(λx.x) 1 = λfx.fx 2 = λfx.f(fx) succ = λnfx.f((n f) x) nとは, fを受け取ってfをn回適用する手続き Exercise 2.7 (define (l-b i) (min (car i) (cdr i))) (define (u-b i) (max (car i) (cdr i))) ;(car i) (cdr i)の関係が保証されているとするなら (define (lower-bound i) (car i)) (define (upper-bound i) (cdr i)) Exercise 2.8 (define (sub-interval x y) (add-interval x (make-interval (* -1 (upper-bound y)) (* -1 (lower-bound y))))) Exercise 2.9 (define (width x) (/ (- (upper-bound x) (lower-bound x)) 2)) 和差 x1 = [l1,u1], x2 = [l2,u2] width(x1)+width(x2) = (u1-l1)/2 + (u2-l2)/2 x1 + x2 = [l1+l2,u1+u2] width(x1+x2)={(u1+u2)-(l1+l2)}/2=(u1-l1)/2 + (u2-l2)/2 x1 - x2 = [l1-u2,u1-l2] width(x1-x2)={(u1-l2)-(l1-u2)}/2=(u1-l1)/2 + (u2-l2)/2 積商 x1 = [6,8], x2 = [1,2] width(x1)=1, width(x2)=1/2 x1 * x2 = [6,16] width(x1 * x2) = (16-6)/2 = 5 width(x1) * width(x2) = 1/2 x1 / x2 = [3,8] width(x1 / x2) = (8-3)/2 = 5/2 width(x1) / width(x2) = 2 Exercise 2.10 (define (div-interval x y) (define span (and ( = (lower-bound y) 0) ( = 0 (upper-bound y)))) (if span (error "perhaps division by zero") (mul-interval x (make-interval (/ 1.0 (upper-bound y)) (/ 1.0 (lower-bound y)))))) Exercise 2.11 Exercise 2.12 ; intervalをcenterと誤差(percent)で定義する ; (define (make-center-percent c per) (let ((err (/ (* c per) 100.0))) (make-interval (- c err) (+ c err)))) (define (center i) (/ (+ (upper-bound i) (lower-bound i)) 2)) (define (width i) (/ (- (upper-bound i) (lower-bound i)) 2)) (define (percent i) (/ (* 100.0 (width i)) (center i))) Exercise 2.13 演算結果はそれぞれ次のものと同値 ;par1 (make-interval (/ (* (lower-bound r1) (lower-bound r2)) (+ (upper-bound r1) (upper-bound r2))) (/ (* (upper-bound r1) (upper-bound r2)) (+ (lower-bound r1) (lower-bound r2)))) ;par2 (make-interval (/ (* (lower-bound r1) (lower-bound r2)) (+ (lower-bound r1) (lower-bound r2))) (/ (* (upper-bound r1) (upper-bound r2)) (+ (upper-bound r1) (upper-bound r2)))) Exercise 2.14
https://w.atwiki.jp/mainichi-matome/pages/5630.html
The story below is originally published on Mainichi Daily News by Mainichi Shinbun (http //mdn.mainichi.jp). They admitted inventing its kinky features, or rather deliberately mistranslating them from the original gossip magazine. In fact, this is far from the general Japanese behavior or sense of worth. このページは、毎日新聞事件の検証のための配信記事対訳ページです。直接ジャンプして来られた方は、必ずFAQをお読みください。 ※ この和訳はあくまでもボランティアの方々による一例であり、翻訳の正確さについては各自判断してください。もし誤訳(の疑い)を発見した場合には、直接ページを編集して訂正するか翻訳者連絡掲示板に報告してください。 Who needs a gym when you have Chocoball's 'station bento' sexercise workout?チョコボールの『駅弁』セクササイズ・トレーニングさえあればジムなんて必要ない 参考資料 拡散状況 関連ページ Who needs a gym when you have Chocoball s station bento sexercise workout? チョコボールの『駅弁』セクササイズ・トレーニングさえあればジムなんて必要ない 元記事(削除済み):http //mdn.mainichi.jp/culture/waiwai/news/20080417p2g00m0dm020000c.html 0 Who needs a gym when you have Chocoball s station bento sexercise workout? 2008,04,17 Spa! 4/10 By Ryann Connell チョコボールの『駅弁』セクササイズ・トレーニングさえあればジムなんて必要ない 2008,04,17 SPA! 4/10 ライアン・コネル記 1 Bonking can make you muscle-bound for free, Japan s original macho man porn star Chocoball Mukai tells Spa! (4/10). セックスをすると無料で筋肉でガチガチになれる、と日本のマッチョポルノ男優の元祖・チョコボール向井は、SPA!(4/10)に語る。 2 "We build up our bodies every time we have sex," the 42-year-old stick flick star tells Spa! "Depending on the position you adopt, the part of the body you build up is going to be different. Take the missionary position. Instead of lying on top of the woman, support yourself by your arms and do push-ups instead." 「私たちはセックスをするたび毎回体を鍛え上げます」とこの四十二歳の竿を振り回す人気者は言う。 「どの体位でするかに依って、鍛え上げられる体の部位が異なります。正常位の場合、女性の上で横たわるかわりに、自分の腕で自分自身を支えて、かわりに腕立て伏せをしてください」 3 Chocoball appears in pictures accompanying the article together with a young starlet where they demonstrate what he explains. For the missionary position, he has straightened his back and arms and is ready to thrust by flexing his biceps and forearms instead of grinding his hips. チョコボールは売り出し中の若手女優と一緒に解説とともに、動画――そこで彼らは説明したことを実践するのだ――に登場する。 正常位の場合、彼は背中と腕を伸ばし、自分の腰を振り回すかわりに上腕と前腕を曲げて、グイッとつく体勢になる。 4 Guys can still get a free workout in a number of ways with the woman riding atop, Chocoball notes for the men s weekly. ほかにも、男たちは女性に騎乗された状態でいくつもの無料のトレーニングができる、とチョコボールはSPA!のために指摘する。 5 Stomach crunches become possible if the guy keeps his legs parallel to the ground and stretches up to fondle, lick or kiss the breasts, thus working on the upper abdominal muscles. もし男が足を地面と平行にし続けて、体を伸ばして胸を愛撫し・舐め・キスすれば、腹筋の上部が使われるので、腹筋運動が可能になる。 6 To give the lower abs a workout, lie flat down and raise the legs airwards, Chocoball advises. 腹筋の下部をトレーニングするためには、うつぶせになって空中に足を上げよ、とチョコボールは助言する。 7 Arguably, Chocoball s best-known position is what the Japanese call the ekiben, where the standing man holds the woman up, while she wraps her arms around his neck. The ekiben gets its name from the large trays attendants sling around their neck and support with their arms on both sides that they use to carry ekiben boxed lunches sold at train stations. おそらくは間違いなく、チョコボールのもっとも有名な体位は、日本人が駅弁位と呼ぶところのものである。この体位では、女性が腕を男性の首に回し、それと同時に彼が立ったまま彼女を抱き上げる。 駅弁位という名前は、接客係が首の周りに掛けて、両側を腕で支える大きなトレーに由来する。接客係は、それを使って列車の駅で箱に入れられた食べ物・駅弁を運ぶのだ。 8 Chocoball says the key to making this position a cheap workout to build up muscles lies in supporting the woman by holding her thighs and using the arms to move her up and down. この体位を筋肉を鍛え上げるための安価なトレーニングにする秘訣は、女性の太ももを抱えて腕をつかって彼女を上下動させる、女性の支え方にある、とチョコボールはいう。 9 For advanced proponents of ekiben sexercise, simply repeat the above process while bending the knees further than usual, giving the hamstrings a workout at the same time. 駅弁エクササイズ賛同者の上級者向けとしては、通常よりも膝を曲げながら上述のプロセスを繰り返すだけでよい。そうすると同時に大腿後面の筋肉群をトレーニングできるのだ。 10 Chocoball tells the men s weekly ekiben sexercise can bulk up the upper arms, back and leg muscles. チョコボールはSPA!に、駅弁エクササイズで上腕・背面・足の筋肉を増量できるという。 11 "We try to make sex look as flamboyant as possible, so on film we re usually on the job for at least 30 minutes a time, which is always pretty good exercise," Chocoball tells Spa! "Do it every day and you ll be built like a tank in no time." (By Ryann Connell) 「私たちはセックスを可能な限りけばけばしく見せようとしているので、AVでは、私たちは通常一度に少なくとも三十分間やるべきことをやります。これはいつも上質のエクササイズになります」と、チョコボールはSPA!に語る。 「これを毎日やれば、すぐに戦車みたいな魅力的な体つきになれます」(ライアン・コネル記) 12 (Mainichi Japan) April 17, 2008 (毎日 日本) 2008年4月17日 参考資料 チョコボール向井 http //ja.wikipedia.org/wiki/%E3%83%81%E3%83%A7%E3%82%B3%E3%83%9C%E3%83%BC%E3%83%AB%E5%90%91%E4%BA%95 拡散状況 Japanese Style Noodles http //www.japanesestylenoodles.com/waiwai/archive20080417 英語版Wikipedia http //en.wikipedia.org/wiki/Chocoball_Mukai 英語サイト http //www.eunuch.org/vbulletin/showthread.php?t=13148 http //www.gaijinpot.com/bb/showpost.php?p=619619 http //www.japanaddicted.com/index.php?name=News file=article sid=4735 関連ページ Japanese Style Noodles WaiWaiの記事を転載した英語サイト:E WaiWaiの記事を転載した英語サイト:G WaiWaiの記事を転載した英語サイト:J 毎日新聞英語版から配信された記事2008年 英語版Wikipediaに記事が及ぼした影響
https://w.atwiki.jp/rsbuygoldq/pages/72.html
if that s the case, must replenish about driver additionally fossil gas concurrently, Given that will require ready ahead of knutson these individuals. Approaching is unquestionably so that you can generate for around 10, 000 driver additionally 50, 000 fossil gas a href="http //www.4rsgold.com/" strong Buy RS Gold /strong /a . the next phase is to enable you to smelt any professional photographer additionally vessel within any air conditioner to produce 500 bronze discos. you could set up about 10 moments weekly as well as other claims are usually popular, however poor. you never notice virtually any ways to stop suit and also slender. starting to be way typically needs get the job done in addition to the typical method is unquestionably 20 moments together with large vitality activity several occasions weekly. men and women provides the must get yourself a excellent industry sedentary condition and in addition extroverted identify. nevertheless, support any crap modus vivendi, as an example by no means profiting from exercising and also ingesting unhealthy food, concerns any for ifs low-cost rs rare metal on the market fertile. and perchance weighty. gradually, any person continues to be contemplating any nutritional shoreline s substandard quality is unquestionably properly, However people dismiss the health conditions together with oceans safe-keeping gadgets products. quite a few experiencing oceans barrels through the use of undiscovered kick off point a href="http //www.4rsgold.com/" strong Runescape Gold /strong /a , however, not simply become plenty of restricted gain -building corporation alternatives, additionally brought up any obscured genuine risk to enable you to the particular physical fitness of an individual. net precisely the identical curve, truth be told, the data introduced coming from baseball bat berrel together with experiencing oceans acquired you could acquire deviates tremendously.
https://w.atwiki.jp/imperionjp/pages/24.html
現在このページは工事中です 民間関係(Civil buildings) +Research facility Research facility 効果:研究開発をする 詳細:さまざまな施設や船を開発可能にしたり基本能力を底上げする。 Research pointsはここでしか稼げないので優先的に拡張すると良い。 Engineering(土木開発) Building lots 施設設置場所を1箇所追加する Building stability 施設の基本防御力を20%上昇させる Geologic exploration 採取地を1箇所追加する Storage capacity 各倉庫の容量を10%上昇させる Teleportation 資源輸送のロスを2%軽減させる 研究名 unlock 1 2 3 4 5 6 7 8 9 10 Building lots - 100 150 225 340 500 750 1150 1700 2500 3850 Building stability - 40 55 80 110 155 215 300 420 600 850 Geologic exploration - 120 190 305 490 800 1250 2000 - - - Storage capacity - 55 75 115 170 255 380 550 850 1300 1900 Teleportation - 40 60 90 135 205 305 455 700 1050 1500 Planetary Defense(防衛システム開発) Repair quota 防衛システムの回復量(基本30%)を5%上昇させる Concealment capacity 隠し倉庫の容量を上昇させる Blueprint 設計図:指定されている防衛システムが製造可能になる 研究名 unlock 1 2 3 4 5 6 7 8 9 10 Repair quota - 50 Concealment capacity - 15 35 55 75 95 115 Blueprint Flak battery 10 - - - - - - - - - - Blueprint Puls laser 50 - - - - - - - - - - Blueprint Gauss gun 200 - - - - - - - - - - Blueprint Interval artillery 700 - - - - - - - - - - Blueprint Tachyon emitter 1500 - - - - - - - - - - Blueprint Defense Missile 1 50 - - - - - - - - - - Blueprint Defense Missile 2 300 - - - - - - - - - - Blueprint Bionic Missile 300 - - - - - - - - - - Military Space Travel(軍事開発) Propulsion technology 移動速度を10%上昇させる(太陽系内の移動は適用外) Fuel consumption 隠し倉庫の容量を上昇させる Cargo capacity 資源積載量を5%上昇させる Tank capacity 航続距離を座標1マス分延長する Blueprint 設計図:指定されている戦闘機・ミサイルが製造可能になる 研究名 unlock 1 2 3 4 5 6 7 8 9 10 Propulsion technology - 170 Fuel consumption - 180 Cargo capacity - 90 Tank capacity - 60 85 Blueprint Fighter - - - - - - - - - - Blueprint Battleship 500 - - - - - - - - - - Blueprint Destroyer 550 - - - - - - - - - - Blueprint Heavy Cruiser 8000 - - - - - - - - - - Blueprint Pulsar 7500 - - - - - - - - - - Blueprint Bomber 5000 - - - - - - - - - - Blueprint Attack Missile 1 100 - - - - - - - - - - Blueprint Attack Missile 2 300 - - - - - - - - - - Blueprint Attack Missile 3 1000 - - - - - - - - - - Blueprint Attack Missile 4 3000 - - - - - - - - - - Blueprint Bionic Blast 500 - - - - - - - - - - Civilian Space Travel(民間開発) Recycling 隕石での資源回収時間を半分にする(回収準備時間10分は適用外)/解体回収率を5%上昇させる Worm hole physics 銀河間の移動時間を1時間短縮させる Expansion studies Expansion pointsを(消費research points x 5)増やす Propulsion technology 移動速度を10%上昇させる(太陽系内の移動は適用外) Fuel consumption 隠し倉庫の容量を上昇させる Cargo capacity 資源積載量を5%上昇させる Trade 市場の積載量を20%上昇させる Espionage スパイ能力上昇(Lv1:艦隊数/Lv2:資源量/Lv3:防衛システム/Lv4:研究レベル/Lv5:施設レベル)/隠匿率上昇 Tank capacity 航続距離を座標1マス分延長する Blueprint 設計図:指定されている民間機・ミサイルが製造可能になる 研究名 unlock 1 2 3 4 5 6 7 8 9 10 Recycling - 60 120 240 480 950 1900 3850 7700 15300 30700 Worm hole physics 600 30 40 60 80 115 160 225 315 445 600 Expansion studies - 250 500 750 1000 1250 1500 1750 2000 2250 2500 Propulsion technology - 90 125 175 245 345 485 700 950 1350 1850 Fuel consumption - 120 170 235 330 460 650 900 1250 1750 2500 Cargo capacity - 60 85 120 165 230 325 450 650 900 1250 Trade - 70 100 140 200 275 385 550 750 1050 1500 Espionage - 120 170 235 330 460 650 900 1250 1750 2500 Tank capacity - 45 55 80 110 155 215 300 420 600 850 Blueprint Probe 220 - - - - - - - - - - Blueprint Tanker 250 - - - - - - - - - - Blueprint Small transporter - - - - - - - - - - Blueprint Large transporter 1200 - - - - - - - - - - Blueprint Recycler - - - - - - - - - - Blueprint Drop ship 400 - - - - - - - - - - Energy technology(エネルギー開発) 各種使用許可/発電量を20%上昇させる 研究名 unlock 1 2 3 4 5 6 7 8 9 10 AEC energy - 70 100 Fusion power 1000 Solar power 100 105 155 Hydropower 300 100 Wind power - 110 165 250 Level EP RP Main RP Sub 1 625 745 1030 0 05 00 20 1 30 10 2 843 1005 1390 0 12 30 26 1 36 12 3 1139 1357 1877 0 21 15 33 1 42 14 4 1537 1832 2534 0 31 53 41 2 48 16 5 2075 2474 3421 0 45 19 50 2 54 18 6 2802 3340 4618 1 02 58 62 2 60 20 7 3783 4509 6235 1 26 57 75 3 66 22 8 5107 6088 8417 2 00 26 91 4 72 24 9 6895 8219 11363 2 48 09 110 4 78 26 10 9308 11095 15340 3 57 13 133 5 84 28 11 12566 14979 20709 5 38 20 161 6 90 30 12 16964 20222 27958 8 07 29 195 7 96 32 13 22902 27299 37743 11 48 44 235 9 102 34 14 30918 36854 50953 17 18 06 285 11 108 36 15 41740 49754 68787 25 29 39 345 13 114 38 16 56349 67168 92863 37 44 28 417 15 120 40 17 76071 90676 125365 56 04 12 506 18 126 42 18 102696 122413 169243 83 31 18 613 22 132 44 19 138639 165258 228478 124 39 28 744 27 138 46 20 187163 223099 308445 186 19 11 903 32 150 50 +Embassy Embassy 効果:Leagueの最大人数を増やす 建設条件:施設 Building yard level 3 詳細:1Lvで既存Leagueの参加が可能。 3Lvで新規Leagueの設立が可能。 現在のExpansion pointsが確認可能。 Level EP 人数 1 640 520 840 0 22 13 11 5 3 2 864 702 1134 0 33 26 15 6 6 3 1166 947 1530 0 46 24 19 7 9 4 1574 1279 2066 1 01 36 24 9 12 5 2125 1727 2790 1 19 38 30 10 15 6 2869 2331 3766 1 41 20 37 12 18 7 3874 3147 5084 2 07 43 45 15 21 8 5230 4249 6864 2 40 04 55 18 24 9 7060 5736 9267 3 20 05 66 21 27 10 9531 7744 12510 4 09 55 79 26 30 11 12868 10455 16889 5 12 17 95 31 33 12 17372 14114 22800 6 30 44 115 37 36 13 23452 19054 30781 8 09 44 138 45 39 14 31660 25724 41554 10 15 03 165 53 42 15 42741 34727 56098 12 54 04 199 64 45 16 57701 46882 75733 16 16 13 240 77 48 17 77896 63291 102239 20 33 33 289 92 51 18 105160 85443 138023 26 01 33 349 111 54 19 141967 115348 186331 32 59 59 421 133 57 20 191655 155720 251548 41 54 11 510 160 60 +Building yard Building yard 効果:建設時間を短縮する 詳細:10Lvで惑星内の不要な施設を破壊可能になる。 大抵の施設の建設条件になるため早期建築が必要。 Level EP 時間% 1 365 220 195 0 23 20 7 2 100 2 467 281 249 0 34 52 10 2 92 3 598 360 319 0 48 14 13 3 84 4 765 461 408 1 03 56 17 3 76 5 979 590 523 1 22 38 22 4 71 6 1254 755 670 1 45 10 26 5 66 7 1605 967 857 2 12 37 32 6 60 8 2054 1238 1097 2 46 21 39 7 55 9 2630 1585 1405 3 28 08 46 9 51 10 3366 2029 1798 4 20 13 55 10 47 11 4309 2597 2302 5 25 28 66 12 43 12 5515 3324 2946 6 47 36 79 15 39 13 7060 4255 3771 8 31 20 94 18 36 14 9036 5446 4827 10 42 42 112 21 33 15 11567 6972 6179 13 29 28 134 26 31 16 14806 8924 7910 17 01 31 161 31 28 17 18951 11423 10124 21 31 32 193 37 26 18 24258 14621 12959 27 15 46 231 44 24 19 31050 18715 16588 34 34 59 278 53 22 20 39744 23955 21233 43 55 47 335 64 20 +Civilian shipyard Civilian shipyard 効果:民間船を建造する 建設条件:施設 Fleet base level 1 建設条件:施設 Building yard level 1 詳細:非戦闘の船を作る施設。 Level EP 時間% 1 865 960 575 0 26 40 15 3 100 2 1107 1228 736 0 39 08 20 4 95 3 1417 1572 942 0 53 41 25 4 90 4 1814 2013 1205 1 10 55 32 5 85 5 2321 2576 1543 1 31 35 39 6 80 6 2972 3298 1975 1 56 38 48 7 75 7 3804 4222 2528 2 27 17 58 9 70 8 4869 5404 3236 3 05 07 71 11 65 9 6232 6917 4143 3 52 09 86 13 60 10 7978 8854 5303 4 50 57 103 15 55 11 10212 11333 6788 6 04 49 125 19 50 12 13071 14507 8689 7 37 59 150 22 45 13 16731 18569 11122 9 35 49 181 27 40 14 21416 23768 14236 12 05 14 218 32 35 15 27412 30423 18222 15 15 06 264 39 30 16 35088 38942 23324 19 16 44 319 46 25 17 44913 49846 29855 24 24 37 385 55 20 18 57489 63802 38215 30 57 18 466 67 19 73586 81667 48915 39 18 33 565 80 20 94190 104534 62611 49 58 45 685 96 +Colonization center Colonization center 効果:移民船を建造する 建設条件:施設 Embassy level 5 詳細:新しい惑星に移住するための船を作る施設。 やたら獲得Expansion pointsが高い。 Level EP 時間% 1 1550 1900 1550 0 55 33 18 15 100 2 1984 2432 1984 1 16 06 23 18 95 3 2539 3112 2539 1 41 01 30 22 90 4 3250 3984 3250 2 11 30 37 26 85 5 4160 5100 4160 2 49 07 46 31 80 6 5325 6528 5325 3 35 52 56 37 75 7 6816 8356 6816 4 34 19 68 45 70 8 8725 10696 8725 5 47 43 83 54 65 9 11168 13690 11168 7 20 17 100 64 60 10 14296 17524 14296 9 17 21 121 77 55 11 18299 22431 18299 11 45 49 146 93 50 12 23422 28711 23422 14 54 27 177 111 45 13 29981 36751 29981 18 54 30 214 134 40 14 38376 47041 38376 24 00 21 258 160 35 15 49121 60213 49121 30 30 27 312 193 30 16 62875 77073 62875 38 48 23 378 231 17 80480 98653 80480 49 24 19 458 277 18 103015 126276 103015 62 56 56 554 333 19 131859 161634 131859 80 15 40 672 399 20 168780 206891 168780 102 23 52 816 479 +Recycling yard Recycling yard 効果:廃棄物の一部返還・デブリの発見 建設条件:施設 Building yard level 5 詳細:不要なユニットを資源に変えたり範囲内のデブリを発見する。 Level EP 最大量 自動回収率 サーチ範囲 1 1470 1085 945 0 38 20 15 2 10000 11% 3 2 1837 1356 1181 0 54 04 20 2 14000 12% 4 3 2296 1695 1476 1 12 48 25 3 20000 13% 4 4 2871 2119 1845 1 35 23 32 3 27000 14% 5 5 3588 2648 2307 2 02 54 39 4 38000 15% 5 6 4486 3311 2883 2 36 43 48 5 54000 16% 6 7 5607 4138 3604 3 18 36 58 6 75000 17% 6 8 7009 5173 4506 4 10 48 71 7 106000 18% 7 9 8761 6467 5632 5 16 13 86 9 150000 19% 7 10 10952 8083 7040 6 38 34 103 10 210000 20% 8 11 13690 10104 8800 8 22 34 125 12 300000 21% 8 12 17113 12631 11001 10 34 17 150 15 400000 22% 9 13 21391 15788 13751 13 21 28 181 18 570000 23% 9 14 26739 19736 17189 16 54 05 218 21 800000 24% 10 15 33423 24670 21486 21 24 50 264 26 1100000 25% 16 41779 30837 26858 27 09 59 319 31 1500000 26% 17 52224 38546 33573 34 30 23 385 37 2100000 27% 18 65281 48183 41966 43 52 41 466 44 3000000 28% 19 81601 60229 52458 55 51 02 565 53 4300000 29% 20 102001 75286 65572 71 09 08 685 64 ∞ 30% +Resource cache Resource cache 効果:隠し倉庫の最大所持量を増やす 詳細:攻められたときに資源を奪われないための施設。 10Lvにすることで2箇所目の建設が可能。 Level EP 各隠蔽量 1 150 125 125 0 10 00 5 1 500 2 192 160 160 0 17 48 8 1 850 3 245 204 204 0 26 23 10 1 1200 4 314 262 262 0 35 58 14 2 1700 5 402 335 335 0 46 51 17 2 2200 6 515 429 429 0 59 22 21 2 2600 7 659 549 549 1 13 59 25 3 3200 8 844 703 703 1 31 18 31 4 3800 9 1080 900 900 1 52 03 37 4 4400 10 1383 1152 1152 2 17 14 43 5 5000 +Trade center Trade center 効果:市場を使用できる 建設条件:施設 Research facility level 1 詳細:他人と資源のトレードが可能。 Titanとは重水素の交換ができない。 Terran/Xenとの制限はない。 Level EP 台数 1 285 625 390 0 10 00 9 4 1 2 364 800 499 0 22 48 12 5 2 3 466 1024 638 0 36 23 16 6 3 4 597 1310 817 0 50 58 21 7 4 5 765 1677 1046 1 06 51 26 8 5 6 979 2147 1340 1 24 22 32 10 6 7 1253 2748 1715 1 43 59 39 12 7 8 1604 3518 2195 2 06 18 47 14 8 9 2053 4503 2810 2 32 03 56 17 9 10 2628 5764 3597 3 02 14 67 21 10 11 3364 7378 4604 3 38 04 81 25 11 12 4306 9444 5893 4 21 07 97 30 12 13 5512 12089 7543 5 13 26 116 36 13 14 7056 15474 9655 6 17 35 139 43 14 15 9032 19807 12359 7 36 55 167 51 15 16 11560 25353 15820 9 15 39 200 62 16 17 14798 32451 20249 11 19 14 241 74 17 18 18941 41538 25919 13 54 37 290 89 18 19 24245 53169 33177 17 10 42 350 106 19 20 31033 68056 42467 21 18 54 422 128 20 +Robot factory Robot factory 効果:船・ロケット・防衛システムの製造時間短縮 建設条件:施設 Shipyard level 10 建設条件:施設 Civilian shipyard level 10 詳細:製造時間をさらに短縮させる。 製造時間=製造対象*各施設の短縮率*工場の短縮率 Level EP 時間% 1 3995 3485 1020 1 33 20 40 2 97.5 2 5113 4460 1305 2 04 28 50 2 95 3 6545 5709 1671 2 42 55 63 3 92.5 4 8378 7308 2139 3 30 44 77 3 90 5 10723 9354 2738 4 30 32 95 4 87.5 6 13726 11974 3504 5 45 41 116 5 85 7 17570 15327 4486 7 20 29 141 6 82.5 8 22489 19618 5742 9 20 25 171 7 80 9 28787 25112 7349 11 52 32 208 9 77.5 10 36847 32143 9407 15 05 51 253 10 75 11 47164 41143 12042 19 11 53 307 12 72.5 12 60370 52663 15413 24 25 25 373 15 70 13 77274 67409 19729 31 05 20 453 18 14 98911 86284 25253 39 35 49 550 21 15 126606 110444 32325 50 27 51 668 26 16 162056 141368 41376 64 21 03 812 31 17 207432 180951 52961 82 06 09 987 37 18 265513 231617 67790 104 48 04 1201 44 19 339857 296471 86772 133 49 55 1461 53 20 435016 379482 111068 170 58 06 1778 64
https://w.atwiki.jp/tar0_puzzle/pages/23.html
Chapter 1.2 Exercise 1.9 ;; former= recursive (+ 4 5) (inc (+ 3 5)) (inc (inc (+ 2 5))) (inc (int (inc (+ 1 5)))) (inc (inc (inc (inc 5)))) ;; latter= iterative (+ 4 5) (+ 3 6) (+ 2 7) (+ 1 8) (+ 0 9) Exercise 1.10 (A 1 10)= 1024 (A 2 4)= 65536 (A 3 3)= 65536 ;; hが面倒なのでSchemeで表記 (define (f n) (* 2 n)) (define (g n) (expt 2 n)) (define (h n) (if ( n 1) (expt 2 (h (- n 1))) 2)) A(1,n)=A(0,A(1,n-1))=2A(1,n-1) A(1,1)=2 から A(2,n)=A(1,A(2,n-1))=2^A(2,n-1) A(2,1)=2 から 同じように Wikipedia テトレーション参照 名前 Exercise 1.11 (define (f n) (iter-f 2 1 0 n)) (define (iter-f a b c n) (if (= n 0) c (iter-f (+ a (* 2 b) (* 3 c)) a b (- n 1)))) f(n+3)=f(n+2)+f(n+1)+f(n)を行列で表現すると反復表現が理解しやすい - tar0_t 2010-02-17 16 21 25 名前 Exercise 1.12 (define (pascal-triangle n) (if (= n 1) (cons 1 ()) (map + (chain (pascal-triangle (- n 1))) (cons 0 (pascal-triangle (- n 1)))))) (define (chain ls) (if (eqv? (cdr ls) ()) (cons (car ls) (0)) (cons (car ls) (chain (cdr ls))))) 名前 Exercise 1.13 方針だけメモ fib(n+2)-B*fib(n+1) = A*(fib(n+1)-B*fib(n)) と変形できたとすれば fib(n+1)-B*fib(n) = (fib(2)-B*fib(1))*A^(n-1) = A^n 両辺をB^nで割ると G(n) = fib(n)/B^(n-1) とおいて G(n+1)-G(n) = (A/B)^n Σ[k=1,n-1]G(k) = G(n) - G(1) を解けばよいはず Exercise 1.14 Exercise 1.19 (define (fib-iter a b p q cnt) (cond ((= cnt 0) b) ((even? cnt) (fib-iter a b (p2 p q) (q2 p q) (/ cnt 2))) (else (fib-iter (+ (* b q) (* a q) (* a p)) (+ (* b p) (* a q) p q (- cnt 1))))) (define (p2 p q) (+ (* p p) (* q q))) (define (q2 p q) (+ (* 2 p q) (* q q))) (a ,b ) = Tpq * (a,b) = (bq + a(p+q), bp + aq) とすると, Tpqは線形変換. Tpq は2x2の行列として表せるのでTpq^2を計算すればよい すると, が得られるので, 2乗を計算すればいい Exercise 1.23 next手続きの中で, 2かそうでないかの判断を毎回行っているから?
https://w.atwiki.jp/bfgmatome/pages/430.html
ゲーム情報(登録されているタグ) ジャンル>パズル ジャンル>戦略系 ジャンル>頭の体操 製作会社>HandMade Game 製作会社>未確認 言語>英語 コメント欄へ移動 ゲーム配布ページ 英語 http //www.bigfishgames.com/download-games/3806/rooms-the-main-building/index.html 日本語 紹介文 Discover a 1930s throwback upon your arrival to Rooms, complete with city streets and a surreal Mansion. Bored with old puzzles, you`re given a new type of sliding puzzle as a birthday gift. Your goal is to reach the exit before it closes on each level and retrieve the four puzzle pieces. Are you wise enough to use the right object at exactly the right time? Mr. Book is the Rooms steward and your personal guide to escape the maze in Rooms The Main Building. Sliding Puzzle game Attractive levels Collect items to reveal the picture Get help at our Forums 画像 « » var ppvArray_0_7b6f46297bf76cb939b5e2f67a1c1f79 = new Array(); ppvArray_0_7b6f46297bf76cb939b5e2f67a1c1f79[0] = http //w.atwiki.jp/bfgmatome/?cmd=upload&act=open&page=Rooms%3A+The+Main+Building&file=en_rooms-the-main-building-screen1.jpg ; window.onload=function(){ ppvShow_0_7b6f46297bf76cb939b5e2f67a1c1f79(0); }; function ppvShow_0_7b6f46297bf76cb939b5e2f67a1c1f79(n){ if(!ppvArray_0_7b6f46297bf76cb939b5e2f67a1c1f79[n]){ alert( 画像がありません ); return; } ppv_0_7b6f46297bf76cb939b5e2f67a1c1f79$( ppv_img_0_7b6f46297bf76cb939b5e2f67a1c1f79 ).src=ppvArray_0_7b6f46297bf76cb939b5e2f67a1c1f79[n]; ppv_0_7b6f46297bf76cb939b5e2f67a1c1f79$( ppv_link_0_7b6f46297bf76cb939b5e2f67a1c1f79 ).href=ppvArray_0_7b6f46297bf76cb939b5e2f67a1c1f79[n]; ppv_0_7b6f46297bf76cb939b5e2f67a1c1f79$( ppv_prev_0_7b6f46297bf76cb939b5e2f67a1c1f79 ).href= javascript ppvShow_0_7b6f46297bf76cb939b5e2f67a1c1f79( +(n-1)+ ) ; ppv_0_7b6f46297bf76cb939b5e2f67a1c1f79$( ppv_next_0_7b6f46297bf76cb939b5e2f67a1c1f79 ).href= javascript ppvShow_0_7b6f46297bf76cb939b5e2f67a1c1f79( +(n+1)+ ) ; } function ppv_0_7b6f46297bf76cb939b5e2f67a1c1f79$(){ var elements = new Array(); for (var i = 0; i arguments.length; i++){ var element = arguments[i]; if (typeof element == string ) element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } 備考 レス一覧 565 名前: 名無しさんの野望 [sage] 投稿日: 2010/08/16(月) 18 13 11 ID x3/5SpMN 英語サイト見たらRoomsとかあるのね これWiiとかDSで出てる奴じゃん 566 名前: 名無しさんの野望 [sage] 投稿日: 2010/08/16(月) 18 24 14 ID r8Oby/2k . 565 日替わりだったんで即ポチッたんだけど>Rooms なんだかバグっぽい動きが… おかげで解けない部屋があって先に進めない…orz 681 名前: 名無しさんの野望 [sage] 投稿日: 2011/02/04(金) 14 32 54 ID 6XtCw+K1 Rooms The Main Buildingをやってみた。 こういうひたすらパズル(?)みたいなの好き。 時間制限で、ゲームオーバーとか言われると燃えるw 4面あるみたいだから、一通りプレイするだけでも4時間くらい遊べるかな? 682 名前: 名無しさんの野望 [sage] 投稿日: 2011/02/04(金) 14 34 57 ID 6XtCw+K1 連投。 上のrooms http //game.watch.impress.co.jp/docs/news/20110127_423012.html ググったらこんなニュース出てきた。 巷では人気のゲームなのか? 684 名前: 名無しさんの野望 [sage] 投稿日: 2011/02/04(金) 19 25 05 ID VXbFJOFr . 681 . 682 rooms、年末にはまりまくってた。 とにかくひたすらスライドパズル!の合間にストーリーモードってのが バランスよくて、とても楽しかった。 日本語版が魚屋にないのでWii版の購入をただ今、検討中。 コメント 名前 コメント トップページに戻る
https://w.atwiki.jp/bfgmatome/pages/140.html
ゲーム情報(登録されているタグ) シリーズ>Art of Murder ジャンル>アドベンチャー ジャンル>大容量ゲーム 製作会社>不明 言語>英語 コメント欄へ移動 ゲーム配布ページ 英語 http //www.bigfishgames.com/download-games/4297/art-of-murder-fbi-confidential/index.html 日本語 紹介文 A series of strange murders in New York has drawn the attention of FBI Agent Nicole Bonnet! Scour the gritty streets of Gotham as Agent Bonnet, unraveling the clues to the uncanny crimes in this thrilling Large File game. Follow the diabolical murderer`s trail across sprawling cityscapes, ancient ruins and shadow-hewn jungle depths! Can you piece together the sinister motive linking the crimes? Buy Art of Murder FBI Confidential today and find out! Warning Graphic Language Gritty, realistic graphics High-quality video cut-scenes Stop a demonic murderer! 画像 « » var ppvArray_0_5e8789b5a71ee1156a78fb6dce0c89c6 = new Array(); ppvArray_0_5e8789b5a71ee1156a78fb6dce0c89c6[0] = http //w.atwiki.jp/bfgmatome/?cmd=upload&act=open&page=Art+of+Murder%3A+FBI+Confidential&file=en_art-of-murder-fbi-confidential-screen1.jpg ; window.onload=function(){ ppvShow_0_5e8789b5a71ee1156a78fb6dce0c89c6(0); }; function ppvShow_0_5e8789b5a71ee1156a78fb6dce0c89c6(n){ if(!ppvArray_0_5e8789b5a71ee1156a78fb6dce0c89c6[n]){ alert( 画像がありません ); return; } ppv_0_5e8789b5a71ee1156a78fb6dce0c89c6$( ppv_img_0_5e8789b5a71ee1156a78fb6dce0c89c6 ).src=ppvArray_0_5e8789b5a71ee1156a78fb6dce0c89c6[n]; ppv_0_5e8789b5a71ee1156a78fb6dce0c89c6$( ppv_link_0_5e8789b5a71ee1156a78fb6dce0c89c6 ).href=ppvArray_0_5e8789b5a71ee1156a78fb6dce0c89c6[n]; ppv_0_5e8789b5a71ee1156a78fb6dce0c89c6$( ppv_prev_0_5e8789b5a71ee1156a78fb6dce0c89c6 ).href= javascript ppvShow_0_5e8789b5a71ee1156a78fb6dce0c89c6( +(n-1)+ ) ; ppv_0_5e8789b5a71ee1156a78fb6dce0c89c6$( ppv_next_0_5e8789b5a71ee1156a78fb6dce0c89c6 ).href= javascript ppvShow_0_5e8789b5a71ee1156a78fb6dce0c89c6( +(n+1)+ ) ; } function ppv_0_5e8789b5a71ee1156a78fb6dce0c89c6$(){ var elements = new Array(); for (var i = 0; i arguments.length; i++){ var element = arguments[i]; if (typeof element == string ) element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } ボリューム レス一覧 120 :名無しさんの野望:2010/01/11(月) 01 15 57 ID 7HeyONLb 今日のart of muderは体験版がないけど買った人いる? 122 :名無しさんの野望:2010/01/12(火) 01 56 48 ID 6GD1bwqN . 120 美術館の壷のとこでつまってる ディスクでゲーム出てるんだなこれ 123 :名無しさんの野望:2010/01/13(水) 02 02 42 ID 4CLTYuBU . 122 ジャンルは何? スクショ見るとアイテム探しに見えるけどタイトルからすると パズル/アドベンチャー系? 124 :名無しさんの野望:2010/01/13(水) 03 33 22 ID ikB8351c . 123 シベリア系つーか普通のアドベンチャーかな 歩くの遅いのが気になる 125 :名無しさんの野望:2010/01/13(水) 10 00 59 ID 4CLTYuBU . 124 ありがと。セール終わったしちょっと待ってみる。 最近、昔定価で買ったゲームが次々セールでちょっと凹むw 127 :名無しさんの野望:2010/01/14(木) 13 38 19 ID /+Evjo0C art of muderだけどダブルクリックで走れたわ 128 :名無しさんの野望:2010/01/14(木) 23 12 56 ID wS6c9ArL . 127 それ踏まえて「遅い」のかと思ってたw コメント 名前 コメント トップページに戻る